export function toLocaleTime(date) {
    return new Date(date).toLocaleString();
}

export function stringfyObj(obj) {
    const arr = [];
    Object.keys(obj).forEach((key) => {
        arr.push(`${key}=${obj[key]}`);
    });
    return arr.join("&");
}

export function gotoPage(url, query = {}) {
    const search = stringfyObj(query);
    window.location.href = url + (search ? `?${search}` : "");
}

export function parseSearch(search = window.location.search) {
    const result = {};
    if (search && search[0] === '?') {
        search = search.substring(1);
    }
    const arr = search.split('&');
    arr.forEach((item) => {
        const [key, value] = item.split('=');
        if (key) result[decodeURIComponent(key)] = decodeURIComponent(value);
    });
    return result;
}

export function renderCartoon() {
    const script = document.createElement("script");
    script.src = "http://cdn.w-ming99.cn/live2d/L2Dwidget.min.js";
    document.body.appendChild(script);
    script.onload = function load() {
        window.L2Dwidget.init({
            dialog: {
                // 开启对话框
                enable: true,
                script: {
                    // 每空闲 10 秒钟，显示一条一言
                    "every idle 10s": "$hitokoto$",
                    // 当触摸到星星图案
                    "hover .star": "星星在天上而你在我心里 (*/ω＼*)",
                    // 当触摸到角色身体
                    "tap body": "哎呀！别碰我！",
                    // 当触摸到角色头部
                    "tap face": "人家已经不是小孩子了！",
                },
            },
        });
    };
}

// yyyy-MM-dd hh:mm --> 2020-10-06 10:21
export const dateFormat = (date, fmt) => {
    const o = {
        "M+": date.getMonth() + 1, // 月份
        "d+": date.getDate(), // 日
        "h+": date.getHours(), // 小时
        "m+": date.getMinutes(), // 分
        "s+": date.getSeconds(), // 秒
        "q+": Math.floor((date.getMonth() + 3) / 3), // 季度
        S: date.getMilliseconds(), // 毫秒
    };
    if (/(y+)/.test(fmt)) {
        fmt = fmt.replace(RegExp.$1, (`${date.getFullYear()}`).substr(4 - RegExp.$1.length));
    }
    for (const k in o) {
        if (new RegExp(`(${k})`).test(fmt)) {
            fmt = fmt.replace(RegExp.$1, RegExp.$1.length === 1 ? o[k] : (`00${o[k]}`).substr((`${o[k]}`).length));
        }
    }
    return fmt;
};
